perm filename HASH.FAI[SYS,HE] blob
sn#004187 filedate 1972-06-05 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00003 00002 ENTRY HASH,REHASH
00025 ENDMK
⊗;
ENTRY HASH,REHASH
↓A←1
↓B←2
↓C←3
↓D←4
↓X←5
↓Y←6
↓Z←7
↓Q←10
↓SP←16
↓P←17
TITLE HASH
BEGIN HASH
BITS←11
IFE BITS-6,{PRIME←3⎇
IFE BITS-7,{PRIME←5⎇
IFE BITS-10,{PRIME←13⎇
IFE BITS-11,{PRIME←23⎇
IFE BITS-12,{PRIME←45⎇
CMASK←7777⊗(BITS-12)
BMASK←CMASK⊗-2
↑HASH: POP SP,D ;POINTER
POP SP,C ;COUNT
ANDI C,-1
SETZB A,R
AOS R
ILDB A,D
IMULI A,PRIME
SOJLE C,L2
L1: ILDB B,D
ADDI A,(B)
SOJG C,L1
IMULI A,PRIME
L2: ANDI A,BMASK
MOVEM A,H
POPJ P,
↑REHASH:MOVE A,R
IMULI A,5
ANDI A,CMASK
MOVEM A,R
LSH A,-2
JUMPE A,E1
ADD A,H
ANDI A,BMASK
POPJ P,
E1: MOVEI A,[ASCIZ/SYMBOL TABLE FULL/]
CALLI A,3
CALLI A,12
R: Z
H: Z
BEND
END